package com.ch.engine.design.observe;

/**
 * 主题接口，包含了注册、注销和通知观察者
 *
 * @author wangchunhui
 * @date 2023/12/12 11:07
 */
public interface Subject {

    /**
     * 注册
     *
     * @param observer observer
     * @author wangchunhui
     * @date 2023/12/12 11:09
     */
    void registerObserver(Observer observer);

    /**
     * 注销
     *
     * @param observer observer
     * @author wangchunhui
     * @date 2023/12/12 11:09
     */
    void unregisterObserver(Observer observer);

    /**
     * 通知
     *
     * @author wangchunhui
     * @date 2023/12/12 11:09
     */
    void notifyObservers();
}